package com.ht.api.callback.impl.customerlink;

import java.util.Arrays;
import java.util.List;

import javax.sql.DataSource;

import com.ht.api.bean.LoginBean;
import com.ht.api.call.func.IFunctionCall;
import com.ht.api.call.func.impl.fan.PositionChannelStatusFunctionCall;
import com.ht.api.callback.impl.BaseCallbackFunction;
import com.ht.api.db.Db;
import com.ht.api.db.Entity;

import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j;

/**
 * 删除获客链接事件
 * @author asq
 * @createTime 2025年3月4日 20:50:54
 */
@Slf4j
public class WwxCustomerLinkDelCallbackFunction extends BaseCallbackFunction {

	@Override
	protected List<String> buildSourceDataList(JSONObject params) {
//		获客链接删除事件:
//			1 更改error的值：正常，异常，删除（配置数据源来实现）
//			2 查看对应的广告位是否为正常状态，如果是，则将广告位停用
		try {
			DataSource ds = getTenantDs(appid);
			String linkId = params.getStr("LinkId");
			
			// 根据获客链接ID查询广告位
			String positionId = Db.createSqlParser("wx_customer_link").select("position_id").where("link_id", linkId).val(ds);
			Entity positionChannel = Db.createSqlParser("position_channel").findById(ds, positionId);
			if (positionChannel != null && positionChannel.getInt("status") == 1) {
				IFunctionCall fun = new PositionChannelStatusFunctionCall();
				LoginBean me = LoginBean.builder().dataSource(ds).build();
				fun.execute(me, params);
			}
		} catch (Exception e) {
			log.error("处理删除获客链接事件发生异常：{}", e.getMessage(), e);
		}

		return Arrays.asList(params.toString());
	}
}
